# 导入绝对导入和Unicode文字支持
from __future__ import absolute_import, unicode_literals
# 导入os模块
import os
# 导入Celery类
from celery import Celery
# 导入datetime模块
from datetime import datetime

# 设置环境变量，指定Django设置模块
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'host_manager.settings')

# 创建Celery应用实例
app = Celery('host_manager')
# 从Django设置中加载Celery配置，使用CELERY命名空间
app.config_from_object('django.conf:settings', namespace='CELERY')
# 自动发现并注册任务
app.autodiscover_tasks()

# 定义定时任务调度表
app.conf.beat_schedule = {
    'ping-all-hosts-every-30-minutes': {
        'task': 'hosts.tasks.ping_all_hosts',
        'schedule': 1800.0,
    },
    'change-all-hosts-password-every-8-hours': {
        'task': 'hosts.tasks.change_all_hosts_password',
        'schedule': 28800.0,
    },
    'generate-host-statistics-daily': {
        'task': 'hosts.tasks.generate_host_statistics',
        'schedule': 86400.0,
        'args': (),
        'options': {
            'eta': datetime(year=2025, month=5, day=29, hour=0, minute=0, second=0),
        }
    },
}
